package com.pet_service.util;

/**
 * @author 邹全伸
 * @version 1.0
 * @date 2025-09-23 18:59
 */
public class EnumUtils {

    /**
     * 根据code值获取枚举实例
     * @param enumClass 枚举类
     * @param code code值
     * @param <T> 实现了CodeEnum接口的枚举类型
     * @return 对应的枚举实例
     */
    public static <T extends CodeEnum> T getEnumByCode(Class<T> enumClass, int code) {
        for (T enumConstant : enumClass.getEnumConstants()) {
            if (enumConstant.getCode() == code) {
                return enumConstant;
            }
        }
        return null;
    }

    /**
     * 根据name值获取枚举实例
     * @param enumClass 枚举类
     * @param name 枚举名称
     * @param <T> 实现了CodeEnum接口的枚举类型
     * @return 对应的枚举实例
     */
    public static <T extends Enum<T> & CodeEnum> T getEnumByName(Class<T> enumClass, String name) {
        try {
            return Enum.valueOf(enumClass, name);
        } catch (IllegalArgumentException e) {
            return null;
        }
    }
}



